Typically, processing of a document to be printed occurs within a printer driver. The printer driver is a piece of software that enables a software application to communicate with a printer. When the application needs to print a document, it sends print data to the printer driver. Typically, the print data is a series of commands (e.g., draw a circle, draw a line of text in a particular font, etc.). The printer driver accepts the print data from the software application and then creates printer ready data. The printer ready data is print data translated into a format that the printer can understand. The format of the printer ready data may depend on the capabilities of the printer. For example, the printer ready data may be a series of commands. Alternatively, the printer ready data may be pixel data, i.e., data that may be used to print pixels on a piece of paper (e.g., RGB values, CMYK values, etc.).
Ideally, printer drivers are configured to process documents to be printed so as to balance the competing requirements of throughput, typically measured in pages per minute, and the print quality of the hardcopy output. However, the best way to balance these two competing requirements often varies for different types of documents. For example, documents with only black-and-white objects (e.g., plain text, black-and-white pictures, line art, etc.) are typically processed differently than documents with color objects (e.g., color text, pictures, line art, etc.).
Many computer applications allow different types of objects to be combined into one document. For example, a word processing document may contain images imported from a digital camera, charts and graphs taken from a spreadsheet, drawings imported from a drawing program, etc. Some of these objects may be in black-and-white, while others may be in color. Thus, both black-and-white objects and color objects are often combined into a single document.
It is difficult to process such documents so as to maintain the proper balance between throughput and print quality. One way to process a document having both black-and-white objects and color objects involves using one predetermined processing algorithm for each object within the document. Unfortunately, this approach typically results in printed documents that vary substantially in quality. Another way to process a document having both black-and-white objects and color objects involves using a best-fit algorithm for each type of object incorporated into the document. However, such an approach typically requires substantial processing time. Thus, benefits may be realized by a printer driver that is capable of context-based processing of print data.